import { option } from '@/api/http'

/**
 * 获取所有我发起的所有流程
 * @param userId
 * @returns {*}
 */
export function getAllMySealApprove(userId){
  return option({
    url:'seal/getAll',
    method:'post',
    data:{
      userId
    }
  })
}


/**
 * 获取我正在审批中/进行中的流程
 * @param userId
 * @returns {*}
 */
export function getMyGoingSealApprove(userId){
  return option({
    url:'seal/getGoing',
    method:'post',
    data:{
      userId
    }
  })
}


/**
 * 获取我已通过的流程
 * @param userId
 * @returns {*}
 */
export function getMyPassedSealApprove(userId){
  return option({
    url:'seal/getPassed',
    method:'post',
    data:{
      userId
    }
  })
}


/**
 * 获取我被拒绝的流程
 * @param userId
 * @returns {*}
 */
export function getMyRefusedSealApprove(userId){
  return option({
    url:'seal/getRefused',
    method:'post',
    data:{
      userId
    }
  })
}


/**
 * 获取指定流程详情
 * @param flowId
 * @returns {*}
 */
export function getSealApproveDetails(flowId){
  return option({
    url:'seal/getCurrent',
    method:'post',
    data:{
      flowId
    }
  })
}


/**
 * 撤销本人上传的流程
 * @param flowId，userId
 * @returns {*}
 */
export function delSealApprove(flowId,userId){
  return option({
    url:'seal/delApprove',
    method:'post',
    data:{
      flowId,
      userId
    }
  })
}


/**
 *
 * @param userId 用户id
 * @param sealType 章类型 0:公章 1:法人章 2:合同章
 * @param sealSubject 用印主题
 * @param sealProject 关联项目
 * @param sealTake 是否外借
 * @param sealOperator 审核人id
 * @param sealCopy 抄送人
 * @param sealUseNumber 盖章次数
 * @returns {*}
 */
/**
 * 表单
 * @param form userId 用户id  sealType 章类型 0:公章 1:法人章 2:合同章 sealSubject 用印主题 sealProject 关联项目 sealTake 是否外借 sealOperator 审核人id sealCopy 抄送人 sealUseNumber 盖章次数 file 附件
 * @returns {*}
 */
export function createSealApprove(form){
  return option({
    url:'seal/create',
    method:'post',
    data:form,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}


/**
 * 查看我的待审批
 * @param userId
 * @returns {*}
 */
export function getToOperateSealApprove(userId){
  return option({
    url:'seal/toOperate',
    method:'post',
    data:{
      userId
    }
  })
}


/**
 * 获取所有我的审批
 * @param userId
 * @returns {*}
 */
export function getMyOperateApprove(userId){
  return option({
    url:'seal/getAllOperate',
    method:'post',
    data:{
      userId
    }
  })
}


/**
 * 获取所有我审批过的
 * @param userId
 * @returns {*}
 */
export function getOperatedSealApprove(userId){
  return option({
    url:'seal/getOperated',
    method:'post',
    data:{
      userId
    }
  })
}


/**
 * 获取抄送给我的流程
 * @param userId
 * @returns {*}
 */
export function getMyCopySealApprove(userId){
  return option({
    url:'seal/getMyCopy',
    method:'post',
    data:{
      userId
    }
  })
}


/**
 * 已读通知
 * @param noticeId
 * @returns {*}
 */
export function readSealNotice(noticeId){
  return option({
    url:'seal/read',
    method:'post',
    data:{
      noticeId
    }
  })
}



/**
 * 归还印章
 * @param approveId
 * @returns {*}
 */
export function returnSealById(approveId){
  return option({
    url:'seal/return',
    method:'post',
    data:{
      approveId
    }
  })
}


/**
 * 发起请求时 获取审核人列表
 * @returns {*}
 */
export function getStartOperator(userId){
  return option({
    url:'seal/getOperator',
    method:'post',
    data:{
      userId
    }
  })
}


/**
 * 审核人员获取下一个审核节点
 * @param approveId
 * @returns {*}
 */
export function getNextSealOperator(approveId){
  return option({
    url:'seal/getNextOperator',
    method:'post',
    data:{
      approveId
    }
  })
}


/**
 *
 * @param operatorId
 * @param flowId
 * @param result
 * @param reason
 * @param nextOperator
 * @returns {*}
 */
export function doSealCheck({operatorId, flowId,result,reason,nextOperator}){
  return option({
    url:'seal/check',
    method:'post',
    data:{
      operatorId,
      flowId,
      result,
      reason,
      nextOperator
    }
  })
}

export function getLogList(){
  return option({
    url:'seal/getLog',
    method:'get'
  })
}


export function getLogByCondition({condition, value}){
  return option({
    url:'seal/filLog',
    method:'post',
    data:{
      condition,
      value
    }
  })
}


export function downSeal(approveId){
  return option({
    url:'seal/download',
    method:'post',
    data:{
      approveId
    },
    responseType: 'blob',
  })
}


export function getTodo (userId){
  return option({
    url:'seal/getTodo',
    method:'post',
    data:{
      userId
    }

  })
}


export function preview (approveId){
  return option({
    url:'seal/preview',
    method:"post",
    data:{
      approveId
    },
    responseType: 'blob',
  })
}

export function getEdit (userId){
  return option({
    url:'seal/getToEdit',
    method:"post",
    data:{
      userId
    },
  })
}

export function submitEdit (data){
  return option({
    url:'seal/resubmit',
    method:"post",
    data,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

export function getOperators(){
  return option({
    url:'seal/getOperatorList',
    method:'get',
  })
}
